package com.example.android.utils.api;

import androidx.lifecycle.LiveData;

import com.example.android.bean.BaseModelTable;
import com.example.android.bean.CarOrder;
import com.example.android.utils.BaseModel;

import java.util.List;

import retrofit2.Call;
import retrofit2.http.Body;
import retrofit2.http.GET;
import retrofit2.http.POST;
import retrofit2.http.Path;

public interface CarOrderApi {
    /**
     * 预约车辆（创建订单）
     *
     * @param carOrder
     * @return
     */
    @POST("/order")
    Call<BaseModel<Integer>> saveOrder(@Body CarOrder carOrder);

    /**
     * 取消订单
     *
     * @param orderId
     * @return
     */
    @POST("/order/cancel/{orderId}")
    Call<BaseModel<String>> cancel(@Path("orderId") Long orderId);

    /**
     * 获得订单信息
     *
     * @return
     */
    @POST("/order/list")
    LiveData<BaseModelTable<CarOrder>> getMeCarOrderList(@Body CarOrder carOrder);

    /**
     * 拿车验证接口
     *
     * @param carId
     * @param verify
     * @return
     */
    @POST("/order/verify/{carId}/{verify}")
    Call<BaseModel<String>> verifyCode(@Path("carId") Long carId, @Path("verify") Integer verify);

    /**
     * 收车接口
     *
     * @param carId
     * @return
     */
    @POST("/order/car/{carId}")
    Call<BaseModel<String>> getUserCar(@Path("carId") Long carId);

    /**
     * 获得用户车辆订单的信息列表
     *
     * @return
     */
    @GET("/order/getNowOrder")
    LiveData<BaseModel<List<CarOrder>>> getNewOrderInfoList();
}
